package StringDemo.demo2;

import java.util.Scanner;

//请编写程序，由键盘录入一个字符串，统计字符串中大小写英文字母字符和数字分别有多少个。
public class TraverseString {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter a string: ");
        String s = sc.nextLine();
        //统计-----计数器思想
        //定义三个计数器
        int numberCounter = 0;
        int bigCounter = 0;
        int smallCounter = 0;
        //用charAt(int index)方法循环遍历字符串
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            //char类型的变量在参与计算的时候自动类型提升为int，然后通过Ascii码表计算
            if (c >= 'a' && c <= 'z') {
                smallCounter++;
            }else if (c >= 'A' && c <= 'Z') {
                bigCounter++;
            }else if (c >= '0' && c <= '9') {
                numberCounter++;
            }
            //求对应的Ascii值：
//            System.out.println('0'+0);//48
            //i就是数字0对应的Ascii值
        }
        System.out.println("小写字母有"+smallCounter+"个");
        System.out.println("大写字母有"+bigCounter+"个");
        System.out.println("数字字母有"+numberCounter+"个");
    }
}
